home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / tools / ask / source_ / defines.mac < prev    next >
Text File  |  1998-09-12  |  5KB  |  179 lines

  1.     .nlist
  2.     .ifndef        __DEFINES_MAC    * 2重include対策
  3.  
  4. __DEFINES_MAC    equ    1    * includeした印
  5.  
  6. *******************************************************************************
  7. * アセンブラー用定数定義
  8. *******************************************************************************
  9.  
  10.     .text
  11.     .include    iocscall.mac
  12.     .include    doscall.mac
  13.     .nlist        * doscallから.listで帰ってくるから
  14.  
  15. *******************************************************************************
  16. * コード
  17. ESC    equ    $1b
  18. CR    equ    $0d
  19. BS    equ    $08
  20. TAB    equ    $09
  21. SPC    equ    ' '
  22. LF    equ    $0a
  23. EOF    equ    $1a
  24.  
  25. *******************************************************************************
  26. * 定数
  27.  
  28. * パス名要素長
  29. MAXDRIVE    equ    (2+1)
  30. MAXDIR        equ    (64+1)
  31. MAXFILE        equ    (18+1)
  32. MAXFNAME    equ    MAXFILE
  33. MAXEXT        equ    (1+3+1)        * '.'+拡張子+00
  34. MAXPATH        equ    (2+64+18+1+3+1)
  35. MAXDRVDIR    equ    (2+64+1)    * ドライブ名+ディレクトリ
  36. MAXFILEEXT    equ    (18+1+3+1)    * ファイル名+'.'+拡張子+00
  37.  
  38. * ファイル属性
  39. FA_ARCH        equ    $20
  40. FA_DIREC    equ    $10
  41. FA_RONLY    equ    $01
  42. FA_HIDE        equ    $02
  43. FA_SYS        equ    $04
  44. FA_VOL        equ    $08
  45.  
  46. * ビット定数
  47. BIT0        equ    $0001
  48. BIT1        equ    $0002
  49. BIT2        equ    $0004
  50. BIT3        equ    $0008
  51. BIT4        equ    $0010
  52. BIT5        equ    $0020
  53. BIT6        equ    $0040
  54. BIT7        equ    $0080
  55. BIT8        equ    $0100
  56. BIT9        equ    $0200
  57. BIT10        equ    $0400
  58. BIT11        equ    $0800
  59. BIT12        equ    $1000
  60. BIT13        equ    $2000
  61. BIT14        equ    $4000
  62. BIT15        equ    $8000
  63. BIT0123        equ    (BIT3|BIT2|BIT1|BIT0)
  64. BIT4567        equ    (BIT4|BIT5|BIT6|BIT7)
  65.  
  66. BIT16        equ    $00010000
  67. BIT17        equ    $00020000
  68. BIT18        equ    $00040000
  69. BIT19        equ    $00080000
  70. BIT20        equ    $00100000
  71. BIT21        equ    $00200000
  72. BIT22        equ    $00400000
  73. BIT23        equ    $00800000
  74. BIT24        equ    $01000000
  75. BIT25        equ    $02000000
  76. BIT26        equ    $04000000
  77. BIT27        equ    $08000000
  78. BIT28        equ    $10000000
  79. BIT29        equ    $20000000
  80. BIT30        equ    $40000000
  81. BIT31        equ    $80000000
  82.  
  83. * テキスト画面属性(BIOSサポート)
  84. TBLACK        equ    0
  85. TCYAN        equ    BIT0
  86. TYELLOW        equ    BIT1
  87. TWHITE        equ    (BIT0|BIT1)
  88. HLIGHT        equ    BIT2    * 強調
  89. REVERSE        equ    BIT3    * 反転
  90.  
  91. *******************************************************************************
  92. * IOCS work
  93. CSRXMAX        equ    $0970        * .w テキストの桁数-1
  94. CSRYMAX        equ    $0972        * .w テキストの行数-1
  95. TXWDX        equ    CSRXMAX        * .w 横方向の表示桁数-1 テキスト
  96. TXWDY        equ    CSRYMAX        * .w 縦方向の表示桁数-1
  97. CURX        equ    $000974        * .w CURSOR X
  98. CURY        equ    $000976        * .w CURSOR Y
  99. CURSOR        equ    CURX        * .l CURSOR X&Y
  100. CSRX        equ    CURX        * .w 現在のカーソルx座標
  101. CSRY        equ    CURY        * .w 現在のカーソルy座標
  102.  
  103. CURMODE        equ    $000992        * .b カーソル表示スイッチ(<>0で表示)
  104. CSRSWITCH    equ    CURMODE        * .b カーソル表示スイッチ(<>0で表示)
  105. MTXOFST        equ    $0948        * .l テキスト画面トップのオフセット(B_CONSOL)
  106.  
  107. TCOLOR        equ    $000994        * .b TEXT COLOR
  108. CRTMOD        equ    $00093C        * .b CRTMOD
  109. APGNO        equ    $00093D        * .b アクティブページの数
  110. TXPAGE        equ    $000942        * .w BIOS $1A~$1CでアクセスされるテキストVRAM
  111. TXADRS        equ    $000944        * .l TXPAGEで指定されるVRAMのトップアドレス
  112. APGADRS        equ    $00095C        * .l TOP OF APAGE ADDRESS
  113. GRCOLS        equ    $000964        * .w グラフィック色数:$0000 だとグラフィックは使用不可
  114. GRUSE        equ    $0009DC        * .b GRAPHIC USE MODE(TGUSEMD)
  115.  
  116. WK_B_KEYSNS    equ    $810        * .w B_KEYSNSのワークエリア
  117.  
  118. * I/O port
  119. CRTCR20        equ    $e80028        * CRTC R20
  120. CRTCR21        equ    $e8002a        * CRTC R21
  121. CRTCR22        equ    $e8002c        * CRTC R22
  122. CRTCR23        equ    $e8002e        * CRTC R23
  123. CRTCPORT    equ    $e80480        * CRTC port
  124. GPIPCTRL    equ    $e88001        * GPIP Contorol port
  125.  
  126. * TEXT VRAM
  127. TPLANE0        equ    $e00000        * TEXT plane 0 top address
  128. TPLANE1        equ    $e20000        * TEXT plane 1 top address
  129. TPLANE2        equ    $e40000        * TEXT plane 2 top address
  130. TPLANE3        equ    $e60000        * TEXT plane 3 top address
  131. TPSIZE        equ    $20000        * TEXT 1plane size
  132.  
  133. * Graphic VRAM
  134. GRAM        equ    $c00000        * GRAM top address
  135. GRSIZE        equ    $80000        * GRAM true size
  136. GPALET        equ    $e82000        * グラフィックパレット
  137.  
  138. * System I/O
  139. SRAM_PROTECT    equ    $e8e00d        * $31=Write enable , $00 = disable
  140. SRAM_ENABLE    equ    $31
  141. SRAM_DISABLE    equ    $00
  142. SRAM_MEM_LIMIT    equ    $ed0008        * メインメモリー上限
  143. SRAM_PROG_TOP    equ    $ed0100        * SRAM Program top
  144. SRAM_END    equ    $ed3fff        * SRAM END Address
  145.  
  146. *******************************************************************************
  147. * マクロ定義
  148. *******************************************************************************
  149.  
  150. SUPERMODE    macro        * d0,a1破壊
  151. * スーパーバイザーモードに移る
  152.     sub.l    a1,a1        * a1=0 for Super visor mode
  153.     IOCS    _B_SUPER
  154.     endm
  155.  
  156. *******************************************************************************
  157.  
  158. USERMODE    macro        * d0破壊
  159. * ユーザーモードに戻る:a1レジスターを使うタイプ(普通)
  160. local    __end
  161.     cmp.l    #-1,a1        * プログラマーズマニュアルは間違っている
  162.                 * -1ならすでにスーパーバイザーモードである
  163.     beq    __end        * 元からスーパーバイザーモードにいた時はなにもしない
  164.     IOCS    _B_SUPER    * to user mode
  165. __end:
  166.     endm
  167.  
  168. *******************************************************************************
  169.  
  170. BEEP    macro            * d0,d1破壊
  171.     moveq.l    #7,d1
  172.     IOCS    _B_PUTC
  173.     endm
  174.  
  175. *******************************************************************************
  176.  
  177.     .endif
  178.     .list
  179.